<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateOrderDeliveriesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('order_deliveries', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('order_id')->default('')->comment('(商家订单号,string)业务系统订单号');
            $table->bigInteger('delivery_id')->default(0)->comment('(配送活动标识,long,自己生成)业务系统配送单号');
            $table->bigInteger('merchant_id')->default(0)->comment('店铺id');
            $table->bigInteger('enterprise_id')->default(0)->comment('企业id');
            $table->string('mt_peisong_id')->default('')->comment('(请求后返回)美团配送单号');
            $table->integer('delivery_distance')->default(0)->comment('(请求后返回)配送距离');
            $table->double('delivery_fee')->default(0)->comment('(请求后返回)配送价格');

            $table->string('outer_order_source_desc')->default('')->comment('订单来源：101.美团（外卖&闪购）102.饿了么 103.京东到家 201.商家web网站 202.商家小程序-微信 203.商家小程序-支付宝 204.商家APP 205.商家热线 其他，请直接填写中文字符串，最长不超过20个字符 非「其他」需传代码');
            $table->string('outer_order_source_no')->default('')->comment('原平台订单号，如订单来源为美团，该字段必填，且为美团平台生成的订单号，最长不超过32个字符');
            $table->string('shop_id')->default('')->comment('取货门店id');
            $table->integer('delivery_service_code')->default(0)->comment('配送服务代码，详情见合同');
            $table->string('receiver_name')->default('')->comment('');
            $table->string('receiver_address')->default('')->comment('');
            $table->string('receiver_phone')->default('')->comment('');
            $table->integer('receiver_lng')->default(0)->comment('收件人经度（火星坐标或百度坐标，和 coordinate_type 字段配合使用），坐标 * （10的六次方），如 116398419');
            $table->integer('receiver_lat')->default(0)->comment('收件人纬度（火星坐标或百度坐标，和 coordinate_type 字段配合使用），坐标 * （10的六次方），如 39985005');
            $table->integer('coordinate_type')->default(0)->comment('坐标类型，0：火星坐标（高德，腾讯地图均采用火星坐标） 1：百度坐标 （默认值为0）');
            $table->double('goods_value')->default(0)->comment('货物价格，单位为元，精确到小数点后两位，范围为0-5000;跑腿B（4031）帮送服务包：范围0-3000');
            $table->double('goods_height')->default(0)->comment('货物高度，单位为cm，精确到小数点后两位,范围为0-45');
            $table->double('goods_width')->default(0)->comment('货物宽度，单位为cm，精确到小数点后两位，范围为0-50');
            $table->double('goods_length')->default(0)->comment('货物长度，单位为cm，精确到小数点后两位，范围为0-65');
            $table->double('goods_weight')->default(0)->comment('货物重量，单位为kg，精确到小数点后两位，范围为0-50;跑腿B（4031）帮送服务包：范围0-20');
            $table->text('goods_detail')->nullable()        ->comment('货物详情，最长不超过10240个字符，内容为JSON格式');
            $table->string('goods_pickup_info')->default('')->comment('货物取货信息，用于骑手到店取货，最长不超过100个字符');
            $table->string('goods_delivery_info')->default('')->comment('货物交付信息，最长不超过100个字符');
            $table->timestamp('expected_pickup_time')->nullable()->comment('期望取货时间,立即取件 无需输入取件时间');
            $table->timestamp('expected_delivery_time')->nullable()->comment('期望送达时间');
            $table->integer('order_type')->default(0)->comment('订单类型，默认为0 0: 即时单(尽快送达，限当日订单) 1: 预约单');
            $table->string('poi_seq')->default('')->comment('门店订单流水号，建议提供，方便骑手门店取货，最长不超过32个字符');
            $table->string('note')->default('')->comment('备注，最长不超过200个字符。');
            $table->double('cash_on_delivery')->default(0)->comment('骑手应付金额，单位为元，精确到分【预留字段】');
            $table->double('cash_on_pickup')->default(0)->comment('骑手应收金额，单位为元，精确到分【预留字段】');
            $table->string('invoice_title')->default('')->comment('');
            $table->integer('tip_amount')->default(0)->comment('加小费字段，加小费，精确到元，需要为1或1的倍数，上限20，允许每个运单最多加10次； 非跑腿B帮送服务包不支持');
            $table->integer('goods_code_switch')->default(0)->comment('收货码开关，默认为0，0=off，1=on，当收件人手机号为隐私号时，不支持收货码； 非跑腿B帮送服务包不支持');
            $table->string('courier_name')->default('')->comment('');
            $table->string('courier_phone')->default('')->comment('');
            $table->string('cancel_reason_id')->default('')->comment('');
            $table->string('cancel_reason')->default('')->comment('');
            $table->string('predict_delivery_time')->default('')->comment('');
            $table->integer('status')->default(0)->comment('状态代码，可选值为 0：待调度 20：已接单 30：已取货 50：已送达 99：已取消');
            $table->timestamp('operate_time')->nullable()->comment('订单状态变更时间，格式为unix-timestamp');
            $table->softDeletes();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('order_deliveries');
    }
}
